﻿using System;

namespace HalconDotNet
{
	// Token: 0x02000090 RID: 144
	internal class HTupleElementsInt32 : HTupleElementsImplementation
	{
		// Token: 0x06001EEC RID: 7916 RVA: 0x000B8273 File Offset: 0x000B6473
		internal HTupleElementsInt32(HTupleInt32 source, int index) : base(source, index)
		{
		}

		// Token: 0x06001EED RID: 7917 RVA: 0x000B827D File Offset: 0x000B647D
		internal HTupleElementsInt32(HTupleInt32 source, int[] indices) : base(source, indices)
		{
		}

		// Token: 0x06001EEE RID: 7918 RVA: 0x000B8288 File Offset: 0x000B6488
		public override int[] getI()
		{
			if (this.indices == null)
			{
				return null;
			}
			int[] array = new int[this.indices.Length];
			for (int i = 0; i < this.indices.Length; i++)
			{
				array[i] = this.source.IArr[this.indices[i]];
			}
			return array;
		}

		// Token: 0x06001EEF RID: 7919 RVA: 0x000B82D8 File Offset: 0x000B64D8
		public override void setI(int[] i)
		{
			if (!base.IsValidArrayForSetX(i))
			{
				return;
			}
			bool flag = i.Length == 1;
			for (int j = 0; j < this.indices.Length; j++)
			{
				this.source.IArr[this.indices[j]] = i[flag ? 0 : j];
			}
		}

		// Token: 0x06001EF0 RID: 7920 RVA: 0x000B8328 File Offset: 0x000B6528
		public override long[] getL()
		{
			if (this.indices == null)
			{
				return null;
			}
			long[] array = new long[this.indices.Length];
			for (int i = 0; i < this.indices.Length; i++)
			{
				array[i] = (long)this.source.IArr[this.indices[i]];
			}
			return array;
		}

		// Token: 0x06001EF1 RID: 7921 RVA: 0x000B837C File Offset: 0x000B657C
		public override void setL(long[] l)
		{
			if (!base.IsValidArrayForSetX(l))
			{
				return;
			}
			bool flag = l.Length == 1;
			for (int i = 0; i < this.indices.Length; i++)
			{
				this.source.IArr[this.indices[i]] = (int)l[flag ? 0 : i];
			}
		}

		// Token: 0x06001EF2 RID: 7922 RVA: 0x000B83CC File Offset: 0x000B65CC
		public override double[] getD()
		{
			if (this.indices == null)
			{
				return null;
			}
			double[] array = new double[this.indices.Length];
			for (int i = 0; i < this.indices.Length; i++)
			{
				array[i] = (double)this.source.IArr[this.indices[i]];
			}
			return array;
		}

		// Token: 0x06001EF3 RID: 7923 RVA: 0x000B8420 File Offset: 0x000B6620
		public override object[] getO()
		{
			if (this.indices == null)
			{
				return null;
			}
			object[] array = new object[this.indices.Length];
			for (int i = 0; i < this.indices.Length; i++)
			{
				array[i] = this.source.IArr[this.indices[i]];
			}
			return array;
		}

		// Token: 0x06001EF4 RID: 7924 RVA: 0x000B8475 File Offset: 0x000B6675
		public override HTupleType getType()
		{
			return HTupleType.INTEGER;
		}
	}
}
